<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Upgrading from 1.7.2 to 2.0.0 : CodeIgniter User Guide</title>

<style type='text/css' media='all'>
@import url('../userguide.css');
</style>
<link rel='stylesheet' type='text/css' media='all'
	href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv='pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

	<!-- START NAVIGATION -->
	<div id="nav">
		<div id="nav_inner">
			<script type="text/javascript">create_menu('../');</script>
		</div>
	</div>
	<div id="nav2">
		<a name="top"></a><a href="javascript:void(0);"
			onclick="myHeight.toggle();"><img
			src="../images/nav_toggle_darker.jpg" width="154" height="43"
			border="0" title="Toggle Table of Contents"
			alt="Toggle Table of Contents" /></a>
	</div>
	<div id="masthead">
		<table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
			<tr>
				<td>
					<h1>CodeIgniter User Guide Version 2.0.3</h1>
				</td>
				<td id="breadcrumb_right"><a href="../toc.html">Table of
						Contents Page</a></td>
			</tr>
		</table>
	</div>
	<!-- END NAVIGATION -->


	<!-- START BREADCRUMB -->
	<table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
		<tr>
			<td id="breadcrumb"><a href="http://codeigniter.com/">CodeIgniter
					Home</a> &nbsp;&#8250;&nbsp; <a href="../index.html">User Guide
					Home</a> &nbsp;&#8250;&nbsp; Upgrading from 1.7.2 to 2.0.0</td>
			<td id="searchbox">
				<form method="get" action="http://www.google.com/search">
					<input type="hidden" name="as_sitesearch" id="as_sitesearch"
						value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input
						type="text" class="input" style="width: 200px;" name="q" id="q"
						size="31" maxlength="255" value="" />&nbsp;<input type="submit"
						class="submit" name="sa" value="Go" />
				</form>
			</td>
		</tr>
	</table>
	<!-- END BREADCRUMB -->

	<br clear="all" />


	<!-- START CONTENT -->
	<div id="content">

		<h1>Upgrading from 1.7.2 to 2.0.0</h1>

		<p>Before performing an update you should take your site offline
			by replacing the index.php file with a static one.</p>



		<h2>Step 1: Update your CodeIgniter files</h2>

		<p>
			Replace all files and directories in your "system" folder <strong>except</strong>
			your
			<kbd>application</kbd>
			folder.
		</p>

		<p class="important">
			<strong>Note:</strong> If you have any custom developed files in
			these folders please make copies of them first.
		</p>

		<h2>Step 2: Adjust get_dir_file_info() where necessary</h2>

		<p>
			Version 2.0.0 brings a non-backwards compatible change to
			<kbd>get_dir_file_info()</kbd>
			in the <a href="../helpers/file_helper.html">File Helper</a>.
			Non-backwards compatible changes are extremely rare in CodeIgniter,
			but this one we feel was warranted due to how easy it was to create
			serious server performance issues. If you <em>need</em> recursiveness
			where you are using this helper function, change such instances,
			setting the second parameter,
			<kbd>$top_level_only</kbd>
			to FALSE:
		</p>

		<code>
			get_dir_file_info('/path/to/directory',
			<kbd>FALSE</kbd>
			);
		</code>

		</p>

		<h2>Step 3: Convert your Plugins to Helpers</h2>

		<p>
			2.0.0 gets rid of the "Plugin" system as their functionality was
			identical to Helpers, but non-extensible. You will need to rename
			your plugin files from
			<var>filename_pi.php</var>
			to
			<var>filename_helper.php</var>
			, move them to your
			<kbd>helpers</kbd>
			folder, and change all instances of:
			<code>$this->load->plugin('foo');</code>
			to
			<code>$this->load->helper('foo');</code>

		</p>

		<h2>Step 4: Update stored encrypted data</h2>

		<p class="important">
			<strong>Note:</strong> If your application does not use the
			Encryption library, does not store Encrypted data permanently, or is
			on an environment that does not support Mcrypt, you may skip this
			step.
		</p>

		<p>
			The Encryption library has had a number of improvements, some for
			encryption strength and some for performance, that has an unavoidable
			consequence of making it no longer possible to decode encrypted data
			produced by the original version of this library. To help with the
			transition, a new method has been added,
			<kbd>encode_from_legacy()</kbd>
			that will decode the data with the original algorithm and return a
			re-encoded string using the improved methods. This will enable you to
			easily replace stale encrypted data with fresh in your applications,
			either on the fly or en masse.
		</p>

		<p>
			Please read <a href="../libraries/encryption.html#legacy">how to
				use this method</a> in the Encryption library documentation.
		</p>

		<h2>Step 5: Remove loading calls for the compatibility helper.</h2>
		<p>The compatibility helper has been removed from the CodeIgniter
			core. All methods in it should be natively available in supported PHP
			versions.</p>

		<h2>Step 6: Update Class extension</h2>
		<p>
			All core classes are now prefixed with
			<kbd>CI_</kbd>
			. Update Models and Controllers to extend CI_Model and CI_Controller,
			respectively.
		</p>

		<h2>Step 7: Update Parent Constructor calls</h2>
		<p>
			All native CodeIgniter classes now use the PHP 5
			<kbd>__construct()</kbd>
			convention. Please update extended libraries to call
			<kbd>parent::__construct()</kbd>
			.
		</p>

		<h2>Step 8: Update your user guide</h2>
		<p>Please replace your local copy of the user guide with the new
			version, including the image files.</p>

	</div>
	<!-- END CONTENT -->


	<div id="footer">
		<p>
			Previous Topic:&nbsp;&nbsp;<a href="index.html">Installation
				Instructions</a> &nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; <a href="#top">Top
				of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; <a
				href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
			Next Topic:&nbsp;&nbsp;<a href="troubleshooting.html">Troubleshooting</a>
		</p>
		<p>
			<a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp;
			Copyright &#169; 2006 - 2011 &nbsp;&middot;&nbsp; <a
				href="http://ellislab.com/">EllisLab, Inc.</a>
		</p>
	</div>

</body>
</html>